体系的に学ぶ 安全なWebアプリケーションの作り方
https://gyazo.com/a1717228cb1715a371251cdf631bf86f
1章 Webアプリケーションの脆弱性とは
1.1 脆弱性とは、「悪用できるバグ」
1.2 脆弱性があるとなぜ駄目なのか
1.3 脆弱性が生まれる理由
1.4 セキュリティバグとセキュリティ機能
1.5 本書の構成
2章 実習環境のセットアップ
2.1 実習環境の概要
2.2 VMware Playerのインストール
2.3 仮想マシンのインストールと動作確認
2.4 Fiddlerのインストール
3章 Webセキュリティの基礎 ~HTTP、セッション管理、同一生成元ポリシー
3.1 HTTPとセッション管理
3.2 受動的攻撃と同一生成元ポリシー
4章 Webアプリケーションの機能別に見るセキュリティバグ
4.1 Webアプリケーションの機能と脆弱性の対応
4.2 入力処理とセキュリティ
4.3 表示処理に伴う問題
4.3.1 クロスサイト・スクリプティング(基本編)
4.3.2 クロスサイト・スクリプティング(発展編)
4.3.3 エラーメッセージからの情報漏洩
4.4 SQL呼び出しに伴う脆弱性
4.4.1 SQLインジェクション
4.5 「重要な処理」の際に混入する脆弱性
4.5.1 クロスサイト・リクエストフォージェリ(CSRF)
4.6 セッション管理の不備
4.6.1 セッションハイジャックの原因と影響
4.6.2 推測可能なセッションID
4.6.3 URL埋め込みのセッションID
4.6.4 セッションIDの固定化
4.7 リダイレクト処理にまつわる脆弱性
4.7.1 オープンリダイレクタ脆弱性
4.7.2 HTTPヘッダ・インジェクション
4.7.3 リダイレクト処理にまつわる脆弱性のまとめ
4.8 クッキー出力にまつわる脆弱性
4.8.1 クッキーの不適切な利用
4.8.2 クッキーのセキュア属性不備
4.9 メール送信の問題
4.9.1 メール送信の問題の概要
4.9.2 メールヘッダ・インジェクション脆弱性
4.10 ファイルアクセスにまつわる問題
4.10.1 ディレクトリ・トラバーサル脆弱性
4.10.2 意図しないファイル公開
4.11 OSコマンド呼び出しの際に発生する脆弱性
4 .11.1 OSコマンド・インジェクション
4.12 ファイルアップロードにまつわる問題
4.12.1 ファイルアップロードの問題の概要
4.12.2 アップロードファイルによるサーバー側スクリプト実行
4.12.3 ファイルダウンロードによるクロスサイト・スクリプティング
4.13 インクルードにまつわる問題
4.13.1 ファイルインクルード攻撃
4.14 evalにまつわる問題
4.14.1 evalインジェクション
4.15 共有資源に関する問題
4.15.1 競合状態の脆弱性
5章 代表的なセキュリティ機能
5.1 認証
5.1.1 ログイン機能
5.1.2 総当たり攻撃への対策
5.1.3 パスワードの保存方法
5.1.4 自動ログイン
5.1.5 ログインフォーム
5.1.6 エラーメッセージの要件
5.1.7 ログアウト機能
5.2 アカウント管理
5.2.1 ユーザ登録
5.2.2 パスワード変更
5.2.3 メールアドレスの変更
5.2.4 パスワードリマインダ
5.2.5 アカウントの停止
5.2.6 アカウントの削除
5.3 認可
5.3.1 認可とは
5.3.2 認可不備の典型例
5.3.3 認可制御の要件定義
5.3.4 認可制御の正しい実装
5.4 ログ出力
5.4.1 ログ出力の目的
5.4.2 ログの種類
5.4.3 ログ出力の要件
5.4.4 ログ出力の実装
6章 文字コードとセキュリティ
6.1 文字コードとセキュリティの概要
6.2 文字集合
6.3 文字エンコーディング
6.4 文字コードによる脆弱性の発生要因まとめ
6.5 文字コードを正しく扱うために
7章 携帯電話向けWebアプリケーションの脆弱性対策
7.1 携帯電話向けWebアプリケーションの技術的特徴
7.2 携帯ブラウザの技術仕様
7.2.1 JavaScriptの仕様
7.2.2 クッキーの仕様
7.3 かんたんログインの問題
7.4 URL埋め込みのセッションIDによる問題
7.5 その他の問題
8章 Webサイトの安全性を高めるために
8.1 Webサーバーへの攻撃経路と対策
8.1.1 基盤ソフトウェアの脆弱性をついた攻撃
8.1.2 不正ログイン
8.1.3 対策
8.2 成りすまし対策
8.2.1 ネットワーク的な成りすましの手口
8.2.2 フィッシング
8.2.3 Webサイトの成りすまし対策
8.3 盗聴・改ざん対策
8.3.1 盗聴・改ざんの経路
8.3.2 中間者攻撃
8.3.3 対策
8.4 マルウェア対策
8.4.1 Webサイトのマルウェア対策とは
8.4.2 マルウェアの感染経路
8.4.3 Webサーバーのマルウェア対策の概要
8.4.4 Webサーバーにマルウェアを持ち込まない対策
9章 安全なWebアプリケーションのための開発マネジメント
9.1 開発マネジメントにおけるセキュリティ施策の全体像
9.2 開発体制
9.3 開発プロセス
9.3.1 企画段階の留意点
9.3.2 発注時の留意点
9.3.3 要件定義時の留意点
9.3.4 基本設計の進め方
9.3.5 詳細設計・プログラミング時の留意点
9.3.6 セキュリティテストの重要性と方法
9.3.7 ウェブ健康診断仕様の紹介
9.3.8 受注者側テスト
9.3.9 発注者側テスト(検収)
9.3.10 運用フェーズの留意点